import request from "@/utils/request";

const COMMON_BASE_URL = "/api";

/**
 * 液晶对比度 API
 */
export const HMI_LCD_CONTRAST_API = {
  /**
   * 查询液晶对比度
   * @param cpu CPU 编号
   * @returns Promise<LcdContrastInfo[]>
   */
  fetchLcdContrast: (cpu: number = 1) => {
    return request<any, LcdContrastInfo[]>({
      url: `${COMMON_BASE_URL}/contrast/${cpu}`,
      method: "get",
    });
  },

  /**
   * 修改液晶对比度
   * @param cpu CPU 编号
   * @param data 液晶对比度数据
   * @returns Promise<LcdContrastUpdateResponse>
   */
  updateLcdContrast: (cpu: number = 1, data: LcdContrastUpdateRequest[]) => {
    return request<any, LcdContrastUpdateResponse>({
      url: `${COMMON_BASE_URL}/contrast/${cpu}`,
      method: "post",
      data,
    });
  },
};

/**
 * 液晶对比度信息接口
 */
export interface LcdContrastInfo {
  /** 对比度值 (0-100) */
  Contrast: number;
}

/**
 * 液晶对比度更新请求接口
 */
export interface LcdContrastUpdateRequest {
  /** 对比度值 (0-100) */
  contrast: number;
}

/**
 * 液晶对比度更新成功响应接口
 */
export interface LcdContrastUpdateSuccessResponse {
  /** CPU 编号 */
  cpu: number;
  /** 状态 */
  status: string;
}

/**
 * 液晶对比度更新失败响应接口
 */
export interface LcdContrastUpdateErrorResponse {
  /** 错误信息 */
  error: string;
  /** 错误消息 */
  message: string;
  /** 错误代码 */
  code: number;
}

/**
 * 液晶对比度更新响应接口
 */
export type LcdContrastUpdateResponse =
  | LcdContrastUpdateSuccessResponse
  | LcdContrastUpdateErrorResponse;
